Two Tribes Engine ~ ema
Material
struct ema_texture_t {
asset_hash_t asset_texture; // asset hash of a .etx texture
int unknown1[4]; // seems to be texture address mode, 0 = clamp, 2 = wrap
int unknown2[3];
};
struct ema_default_transform_t {
float scale_u;
float scale_v;
float rotation;
float translation_u;
float translation_v;
};
// use { 1, 1, 0, 0, 0 } as default
struct ema_animation_block_t {
int unknown1; // texture id?
keyframe_block_t scale_u;
keyframe_block_t scale_v;
keyframe_block_t rotation;
keyframe_block_t translation_u;
keyframe_block_t translation_v;
};
struct ema_file_t {
asset_header_t asset_header;
short name_len;
char name[name_len];
int num_textures;
ema_texture_t textures[num_textures];
u32 color1;
u32 color2;
u32 color3;
u32 color4;
float unknown1;
int unknown2;
int unknown3;
int unknown4;
int num_default_transforms; // always(?) the same as num_textures
ema_default_transform_t default_transforms[num_default_transforms];
int num_animation_blocks;
ema_animation_block_t animation_blocks[num_animation_blocks];
int unknown5; // always 4?
int unknown6; // always 5?
};